/**
 * 菜单树形结构类型
 */
export interface DeptTreeOption {
  id: string;
  label: string;
  parentId: string;
  weight: number;
  children?: DeptTreeOption[];
}

export interface RoleDeptTree {
  checkedKeys: string[];
  depts: DeptTreeOption[];
}

export interface RoleVO extends BaseEntity {
  // 角色ID
  roleId: string | number;
  // 角色名称
  roleName: string;
  // 角色权限字符串
  roleKey: string;
  // 角色显示顺序
  roleSort: number;
  // 数据范围（1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限）
  dataScope: string;
  // 菜单树选择项是否关联显示
  menuCheckStrictly: boolean;
  // 部门树选择项是否关联显示
  deptCheckStrictly: boolean;
  // 角色状态（0正常 1停用）
  roleStatus: string;
  // 删除标志（0存在 2删除）
  delFlag: string;
  // 描述信息
  remark?: any;
  // 标志
  flag: boolean;
  // 菜单IDs
  menuIds?: Array<string | number>;
  // 部门IDs
  deptIds?: Array<string | number>;
  // 是否管理员
  admin: boolean;
}
export interface RoleQuery extends PageQuery {
  roleName: string;
}
export interface RoleDeptTree {
  checkedKeys: string[];
  depts: DeptTreeOption[];
}

export interface RoleForm {
  roleName: string;
  roleKey: string;
  roleSort: number;
  roleStatus: string;
  menuCheckStrictly: boolean;
  deptCheckStrictly: boolean;
  remark: string;
  dataScope?: string;
  roleId: string | undefined;
  menuIds: Array<string | number>;
  deptIds: Array<string | number>;
}
